package com.project.mapper;

import com.project.bean.EmployeeBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface EmployeeBeanMapper {

    /**
     * 添加员工
     * @param emp 员工对象
     */
    public void addEmp(EmployeeBean emp);

    /**
     * 修改员工在职状态
     * 先讲员工状态修改为"离职"，再将该员工正在进行的项目，完成时间修改为当前时间
     * @param id 员工id
     */
    public void empLeave(int id);

    /**
     * 按照id修改员工的电话和工资
     * @param id 员工Id
     * @param tel 员工新电话
     * @param money 员工新工资
     */
    public void updateEmp(@Param("id") int id, @Param("tel")String tel, @Param("wages")Double money);

    /**
     * 按照id查找员工，同时查找该员工参与的项目名称，以及开工时间和完成时间
     * @param id 员工id
     * @return 员工对象
     */
    public EmployeeBean findById(int id);

    /**
     * 按照条件查询员工集合
     * @param name 员工姓名
     * @param speciality 员工专长
     * @param state 员工状态
     * @param order 排序方式
     * @return 员工集合
     */
    public List<EmployeeBean> findByItem(@Param("name")String name,
                                         @Param("speciality")String speciality,
                                         @Param("state")String state,
                                         @Param("order")String order);


    /**
     * 动态条件查询不在指定项目中的员工，同时统计每个员工正在进行的项目数量
     * @param projectId 项目id
     * @param name 员工姓名
     * @param skill 专长
     * @return
     */
    public List<EmployeeBean> findNoInProject(@Param("projectId") int projectId,
                                              @Param("name")String name,
                                              @Param("skill")String skill);
}
